package org.flh.book.shop.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.flh.book.shop.entity.Book;
import org.springframework.stereotype.Component;

/**
 * 描述：
 *
 * @author 花好月圆
 * @date 2021/1/15 14:07
 */
@Component
public interface BookMapper {

    /**
     * 新增书籍
     * @param book 书籍实体
     * @return 返回主键id
     */
    int addBook(@Param("book") Book book);

    /**
     * 书籍条件查询
     *
     * @param name 书籍名称
     * @param author 作者
     * @param rowStart 起始行
     * @param rowEnd 终止行
     * @return 书籍
     */
    List<Book> queryCondition(@Param("name") String name, @Param("author") String author,
        @Param("rowStart") int rowStart, @Param("rowEnd") int rowEnd);

    /**
     * 查询满足条件的书籍总数
     * @param name 书籍名称
     * @param author 作者
     * @return 满足条件的书籍总数
     */
    int queryTotal(@Param("name") String name, @Param("author") String author);

    /**
     * 更新书籍
     * @param book 书籍实体
     */
    void updateBook(@Param("book") Book book);

    /**
     * 通过主键id删除书籍
     * @param id 主键id
     */
    void deleteById(@Param("id") int id);

    /**
     * 根据id批量删除书籍
     * @param idList id列表
     */
    void batchDelete(@Param("list") List<Integer> idList);
}
